package uade.distribuidas.server.manager;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
import java.util.List;

import uade.distribuidas.repo.dto.RemitoCPRDTO;
import uade.distribuidas.repo.dto.RemitoDTO;
import uade.distribuidas.repo.dto.RemitoODVDTO;
import uade.distribuidas.repo.exception.ExceptionRemito;
import uade.distribuidas.repo.interfaces.ManagerRemitosIf;
import uade.distribuidas.server.dao.RemitosDAO;
import uade.distribuidas.server.domain.Remito;
import uade.distribuidas.server.domain.RemitoCPR;
import uade.distribuidas.server.domain.RemitoODV;



public class ManagerRemitos  extends UnicastRemoteObject implements ManagerRemitosIf {
/**
	 * 
	 */
	private static final long serialVersionUID = 1L;


	public ManagerRemitos() throws RemoteException {
		super();
		// TODO Auto-generated constructor stub
	}



	
	
	public List<RemitoDTO> getRemitos() throws ExceptionRemito{
		List<RemitoDTO> datos = new ArrayList<RemitoDTO>();
		for(Remito c : RemitosDAO.getInstancia().getRemitos()){
			datos.add(c.getVista());
		}
		return datos;
		
	}

	public RemitoDTO getRemito(Integer id)throws ExceptionRemito {
		return RemitosDAO.getInstancia().getRemito(id).getVista();
	}
	
	public RemitoDTO save(RemitoDTO p) throws ExceptionRemito{
		Remito clase=null;
		return RemitosDAO.getInstancia().save(clase).getVista();
	}

	public List<RemitoCPRDTO> getRemitosCPR()throws ExceptionRemito {
		List<RemitoCPRDTO> datos = new ArrayList<RemitoCPRDTO>();
		for(RemitoCPR c : RemitosDAO.getInstancia().getRemitosCPR()){
			datos.add(c.getVista());
		}
		return datos;
		
	}

	public List<RemitoODVDTO> getRemitosNoFacturados() throws ExceptionRemito{
		List<RemitoODVDTO> datos = new ArrayList<RemitoODVDTO>();
		for(RemitoODV c : RemitosDAO.getInstancia().getRemitosNoFacturados()){
			datos.add(c.getVista());
		}
		
		return datos;
		
	}

}
